package com.xiaoxu.base.utils;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author xiaoxu
 * @version 1.0
 * @description TODO
 * @date 2023/1/25 17:22
 */
public class MinIOFilePathUtil {
    /**
     * 根据日期拼接目录
     * @param date  时间日期
     * @param year  是否使用 年 目录
     * @param month 是否使用 月 目录
     * @param day   是否使用 日 目录
     * @return 拼接好的目录路径
     */
    public static String getFileFolder(Date date, boolean year, boolean month, boolean day) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //获取当前日期字符串
        String dateString = sdf.format(date);
        //取出年、月、日
        String[] dateStringArray = dateString.split("-");
        StringBuilder folderString = new StringBuilder();
        if (year) {
            folderString.append(dateStringArray[0]);
            folderString.append("/");
        }
        if (month) {
            folderString.append(dateStringArray[1]);
            folderString.append("/");
        }
        if (day) {
            folderString.append(dateStringArray[2]);
            folderString.append("/");
        }
        return folderString.toString();
    }

    /**
     * 通过MD5码获取文件路径
     *
     * @param fileMd5 文件MD5码
     * @param fileExt 文件后缀
     * @return String
     */
    public static String getFilePathByMd5(String fileMd5, String fileExt) {
        String folder = getFileFolder(new Date(), true, true, true);
        return folder + fileMd5 + "/" + fileMd5 + fileExt;
    }
}
